Мы будем изменять наш макрос. Зайдите в пункт меню "макросы", выберите наш и скажите "изменить":
Sub Test() Dim book As String Dim sheet As String Dim addr As String addr = "C" book = Application.ActiveWorkbook.Name sheet = Application.ActiveSheet.Name Workbooks(book).Activate Worksheets(sheet).Activate Range("A1") = book Range("B1") = sheet Dim xList As Integer xList = Application.Sheets.Count For x = 1 To xList Dim s As String s = addr + LTrim(Str(x)) Range(s) = x Next x End Sub
Программирование на VBA можно рассматривать, как управление объектами приложения. Вот именно объектами и управляет наше приложение. В нашем случае, если упростить иерхическую архитектуру, то это выглядит так.
Application Workbook ........ Worksheets ...... Cell .....
То есть главный объект - приложение. В приложении могут быть несколько книг ( Workbook ), внутри которых находятся листы ( Worksheets ) и листы разбиты на ячейки ( Cell ). При работе активными могут быть только одна книга и один лист. Вот я своим макросом и пытаюсь это выяснить. А заодно, сколько листов в текущей книге.
DIM - объявляет переменную с типом string. Используя объект Application, мы получаем имена текущих книг и листа. С помощью Range("...") можно выделить ячейку и поместить значения в неё или считать. В общем, объекты имеют огромное количество свойств. Задача программиста на VBA знать эти свойства и методы. Ну, я думаю, мысль этого шага понятна :-))